//package br.com.statizo.financeiro.view;
//
//import java.util.ArrayList;
//import java.util.HashMap;
//import java.util.List;
//import java.util.Map;
//
//import org.eclipse.swt.SWT;
//import org.eclipse.swt.events.MouseAdapter;
//import org.eclipse.swt.events.MouseEvent;
//import org.eclipse.swt.graphics.Image;
//import org.eclipse.swt.widgets.Button;
//import org.eclipse.swt.widgets.Composite;
//import org.eclipse.swt.widgets.Shell;
//import org.eclipse.swt.widgets.TabItem;
//import org.eclipse.swt.widgets.TableColumn;
//import org.eclipse.swt.widgets.TableItem;
//import org.springframework.beans.factory.annotation.Autowired;
//
//import br.com.snoghert.persistence.entity.SEntity;
//import br.com.snoghert.swt.annotation.ColumnOrder;
//import br.com.snoghert.swt.annotation.EntityTable;
//import br.com.snoghert.swt.composite.impl.AbstractEditComposite;
//import br.com.snoghert.swt.composite.impl.AbstractEntityTable;
//import br.com.snoghert.swt.composite.util.MessageUtil;
//import br.com.snoghert.swt.composite.util.ModalUtil;
//import br.com.snoghert.swt.controller.EntityController;
//import br.com.snoghert.swt.events.ServiceListChangedEvent;
//import br.com.snoghert.swt.events.ServiceListChangedListener;
//import br.com.snoghert.swt.framework.util.DataProcessor;
//import br.com.snoghert.swt.framework.util.ResourceUtil;
//import br.com.statizo.financeiro.controller.LancamentoController;
//import br.com.statizo.financeiro.entity.Lancamento;
//
//
//public class LancamentoTable extends AbstractEntityTable<Lancamento> implements ServiceListChangedListener{
//
//
//	@Autowired
//	private LancamentoController lancamentoController;
//
//	@Autowired
//	private LancamentoComposite lancamentoComposite;
//
//	@Autowired
//	private ModalUtil modalUtil;
//
//	@Autowired
//	private MessageUtil messageUtil;
//
//
//	@Autowired
//	private TabItem lancTableTabItem;
//
//	@Autowired
//	private ResourceUtil resourceUtil;
//
//	@Autowired
//	private Shell shell;
//	
//	private boolean selecionarTodos = true;
//
//	public LancamentoTable(Composite parent, int style, DataProcessor applyProcessor) {
//		super(parent, style,applyProcessor);
//	}
//
//	@Override
//	public EntityController<Lancamento> getController() {
//		return lancamentoController;
//	}
//
//
//	@Override
//	protected AbstractEditComposite<? extends SEntity> getEditComposite() {
//		return lancamentoComposite;
//	}
//
//	@Override
//	protected ModalUtil getModalUtil() {
//		return modalUtil;
//	}
//
//	@Override
//	protected MessageUtil getMessageUtil() {
//		return messageUtil;
//	}
//
//
//	@Override
//	public List<Button> createCustomButtons(Composite buttonsComposite) {
//		
//		Button button = new Button(buttonsComposite, SWT.NONE);
//		//button.setText("Dar Baixa");
//		Image image = resourceUtil.getImage("tag_check.png");
//		button.setImage(image);
//		List<Button> customButtons = new ArrayList<>(1);
//		customButtons.add(button);
//
//
//
//		button.addMouseListener(new MouseAdapter(){
//
//			@Override
//			public void mouseUp(MouseEvent e) {
//
//				TableItem []items = table.getItems();
//				Map<Integer,Boolean> baixaMap = new HashMap<>(items.length);
//
//				for(int i = 0; i<items.length; i++){
//					baixaMap.put(i, items[i].getChecked());
//				}
//
//				lancamentoController.selectToBaixa(baixaMap);
//				lancamentoController.executarBaixa();
//				notifySaveListeners();
//				messageUtil.show(shell, SWT.ICON_INFORMATION,"Baixa de Lançamentos","Baixa realizada com sucesso!");
//
//			}
//
//		});
//
//		
//		final Button buttonCheck = new Button(buttonsComposite, SWT.NONE);
//		//buttonCheck.setText("Selec. Todos");
//		buttonCheck.setImage(resourceUtil.getImage("checkall.png"));
//		buttonCheck.addMouseListener(new MouseAdapter(){
//
//			@Override
//			public void mouseDown(MouseEvent e) {
//				
//				TableItem []items = table.getItems();
//				
//				for (int i = 0; i < items.length; i++) {
//					items[i].setChecked(selecionarTodos);
//				}
//			
//				
//				selecionarTodos = !selecionarTodos;
//				//buttonCheck.setText(selecionarTodos ? "Selec. Todos" : "Deselec. Todos");
//			}
//
//			
//			
//		});		
//		
//		customButtons.add(buttonCheck);
//		customButtons.add(createResizeLinesButton(buttonsComposite));
//		
//		return customButtons;
//	}
//
//	private Button createResizeLinesButton(Composite buttonsComposite){
//
//		Button button = new Button(buttonsComposite, SWT.NONE);
//
//		//button.setText("Reajustar Linhas");
//		button.setImage(resourceUtil.getImage("ajust-line.png"));
//		button.addMouseListener(new MouseAdapter() {
//
//			@Override
//			public void mouseDown(MouseEvent e) {
//
//				TableColumn[] tableItens = table.getColumns();
//
//				for (int i = 0; i < tableItens.length; i++) {
//
//					tableItens[i].pack();
//				}
//
//
//			}
//
//		});
//
//		return button;
//
//	}
//
//	@Override
//	public void listChanged(ServiceListChangedEvent evt) {
//		refreshData();
//	}
//
//
//}